package com.java.module.user.domain.dto;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import com.java.common.lang.annotation.Encrypt;
import com.java.common.lang.annotation.FileData;
import com.java.common.lang.annotation.validator.Mobile;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 注册请求
 *
 * @author zyz
 */
@ApiModel(value = "注册请求")
@Encrypt
@FileData
public class RegisterUserDTO {

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名", required = true, position = 1)
    @NotBlank(message = "用户名不能为空")
    @Mobile
    private String username;

    /**
     * 用户密码
     */
    @ApiModelProperty(value = "登录密码（RSA加密）", required = true, position = 2)
    @NotBlank(message = "密码不能为空")
    @Encrypt
    private String password;

    /**
     * 确认密码
     */
    @ApiModelProperty(value = "确认密码（RSA加密）", required = true, position = 2)
    @NotBlank(message = "确认密码不能为空")
    @Encrypt
    private String rePassword;

    /**
     * 用户类型
     */
    @ApiModelProperty(value = "用户类型", required = true, position = 1)
    @NotNull(message = "用户类型不能为空")
    private Integer userType;

    /**
     * 微信登录用户唯一标识
     */
    private String wxUnionid;

    /**
     * 验证码
     */
    @ApiModelProperty(value = "验证码", required = true, position = 2)
    @NotNull(message = "验证码不能为空")
    private String smsCode;

    private String recommendUserName;

    public String getRecommendUserName() {
        return recommendUserName;
    }

    public void setRecommendUserName(String recommendUserName) {
        this.recommendUserName = recommendUserName;
    }

    public String getSmsCode() {
        return smsCode;
    }

    public void setSmsCode(String smsCode) {
        this.smsCode = smsCode;
    }

    public String getWxUnionid() {
        return wxUnionid;
    }

    public void setWxUnionid(String wxUnionid) {
        this.wxUnionid = wxUnionid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRePassword() {
        return rePassword;
    }

    public void setRePassword(String rePassword) {
        this.rePassword = rePassword;
    }

    public Integer getUserType() {
        return userType;
    }

    public void setUserType(Integer userType) {
        this.userType = userType;
    }

    @Override
    public String toString() {
        return "RegisterUserDTO{" + "username='" + username + '\'' + ", password='" + password + '\'' + ", rePassword='"
                + rePassword + '\'' + ", userType=" + userType + ", wxUnionid='" + wxUnionid + '\'' + '}';
    }

}